CDIGO DA FUNO

 mapaDist<-function(x="",Dir="",dirOutShape="",classe="")
  {

#Carrega os pacotes necessrios#
    require(sp)
    require(plyr)
    require(maptools)
    require(rgeos)
    require(reshape)

  setwd(Dir)	#Define o diretrio de trabalho#

  shape<-readShapePoly(x)	#L o arquivo em formato shape e salva em um objeto chamado shape.#
  
  Ident<-row.names(shape[1])	#Copia os nomes das linhas do arquivo de entrada (.shp) para um objeto chamado Ident.#

  shape$Ident<-Ident		#Cria identificador para os polgonos, inserindo o objeto da classe vetor (Ident) em uma coluna do objeto shape.#

  selecao=shape[shape$Id_classe==classe,]	#Seleciona as classes de uso definidas pelo argumento "classe" na coluna Id_classe do arquivo de entrada, criando um objeto chamado sulecao.#

  selecao$gArea<-gArea(selecao, byid=T)		#Calcula a rea dos polgonos do objeto selecao inserindo em uma coluna chamada gArea.#

  
  dist<-gDistance(spgeom1=selecao,spgeom2=NULL, byid=TRUE)	#Calcula uma matriz de distncias entre os polgonos da classe de uso selecionada que compoem o objeto selecao, salvando-a em um objeto chamado dist.#

  selecao.dist<- melt(dist)[melt(upper.tri(dist))$value,]	#Cria um data frame chamado selecao.dist, com identificadores e distncias dos polgonos, a partir da matriz de distncia.#
  
  write.table(selecao.dist,paste(x,"_dist.txt",sep=""))		#Cria um arquivo .txt a partir do data frame selecao.dist (contendo o identificadore e as distncias entre polgonos); esse arquivo  salvo no diretrio definido por "Dir"#
  
  write.table(selecao,paste(x,"_out.txt",sep=""))		#Cria um arquivo .txt, a partir do objeto selecao, contendo o identificador (Ident), a rea (gArea) e mantm as colunas do arquivo orginial;esse arquivo possui o mesmo nome do arquivo inicial acrescido de "_out" e  salvo no diretrio definido por "Dir"#

  selecao.out<-readLines(paste(x,"_out.txt",sep=""))		#L o arquivo .txt criado no comando anterir e salva-o em um objeto chamdo selecao.out#
  
  proj<-readLines(paste(x,".prj",sep=""))			#L o arquivo de projeo espacial do shape de entrada (.prj) e salva-o em um objeto chamado proj.# 

  writeLines(proj,paste(Dir,"shape_out.prj",sep=""),sep="")	#Copia a projeo do shape original para o novo shape que ser criado, criando um arquivo .prj com o nome shape_out, a partir do objeto proj.#
  
  writePolyShape(selecao, paste(dirOutShape,"shape_out.shp",sep="\\"))	#Cria arquivo shape (aquivos .shp,.shx e .dbf) com o nome shape_out no diretrio definido pelo argumento "dirOutShape".#

  result<-list(selecao.dist,selecao.out)			#Salva uma lista com os objetos selecao.dist e selecao.out no objeto result.#

  return(result)						#Rotorna o objeto result.#
 
  }